package com.tools.pojo.data;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

import java.util.List;

/**
 * 医疗分析请求DTO
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class MedicalAnalysisRequestDTO {

    /**
     * 系统代码
     */
    @NotBlank(message = "系统代码不能为空")
    @JsonProperty("sysCode")
    private String sysCode;

    /**
     * 患者列表
     */
    @NotEmpty(message = "患者数据不能为空")
    @Valid
    @JsonProperty("patient_dtos")
    private List<PatientDTO> patientDtos;

    /**
     * 规则ID列表
     */
    @NotEmpty(message = "规则ID列表不能为空")
    @JsonProperty("rule_ids")
    private List<String> ruleIds;

    /**
     * 任务ID
     */
    @NotBlank(message = "任务ID不能为空")
    @JsonProperty("task_id")
    private String taskId;

    /**
     * 触发场景
     */
    @NotBlank(message = "触发场景不能为空")
    @JsonProperty("trig_scen")
    private String trigScen;

    /**
     * 业务标识（可选，前端传入）
     */
    private String businessKey;

    /**
     * 分析类型（可选，前端传入）
     */
    private String analysisType;

    /**
     * 客户端信息（可选，前端传入）
     */
    private Object clientInfo;

    /**
     * 分析配置（可选，前端传入）
     */
    private Object config;
}